async function testSomething() {
    console.log('执行testSomething');
    return 'testSomething';  // 相当于resolve
};

async function testAsync() {
    console.log('执行testAsync');
    return Promise.resolve('hello async');
};

async function test() {
    console.log('test start...');
    const v1 = await testSomething();
    console.log(v1);   // 后面的全部 微1
    const v2 = await testAsync();
    console.log(v2);   // 后面的微3
    console.log(v1, v2);
};

test();

var promise = new Promise(resolve => {
    console.log('promise start...');
    resolve('promise');
})

promise.then(val => console.log(val));  // 微2

console.log('test end...');


// test start... -> 执行testSomething -> promise start... -> test end...
// -> Promise{<resolved>: 'testSomething'} -> 执行testAsync -> promise 
// -> Promise{<resolved>: 'hello async'} -> Promise{<resolved>: 'testSomething'} Promise{<resolved>: 'hello async'}